import socket
import sys
# 设置服务器地址、端口
host = 'localhost'
port = 9999

sockaddr = (host, port)
sk = socket.socket()
sk.bind(sockaddr)
sk.listen(100)

while True:
    conn, addr = sk.accept()
    while True:
        data = conn.recv(1024)
        if not data:
            print('已断开连接')
            sys.exit()
        else:
            conn.sendall(data+bytes('，已收到'.encode('utf-8')))
            print(data)


# 可能看不懂的代码解释如下：
#
#  1. import socket：导入Python内置的socket模块，该模块提供了与网络通信相关的功能。
#  2. host = 'localhost'：设置服务器的地址为 'localhost'。localhost 表示本机，即运行此程序的计算机。
#  3. port = 9999：设置服务器的端口号为 9999。端口号是用来标识网络中进程的逻辑地址。
#  4. sockaddr = (host, port)：将服务器的地址和端口号组合成一个元组（socket地址），用于后续的socket操作。
#  5. sk = socket.socket()：创建一个socket对象（sk），用于网络通信。
#  6. sk.bind(sockaddr)：将socket地址绑定到socket对象上，这样socket就可以在指定的地址和端口上接收连接。
#  7. sk.listen(100)：将socket设置为监听模式，参数100表示最大等待连接队列的长度。
#  8. conn, addr =sk.accept()：调用socket对象的accept()方法，等待并接受一个客户端的连接请求。返回值是一个包含新连接的socket对象（conn）和客户端的地址信息（addr）的元组。
#  9. data =conn.recv(1024)：调用新连接的socket对象（conn）的recv()方法，接收客户端发送的数据，参数1024表示一次最多接收1024字节的数据。
#  10. conn.sendall(data+bytes('，已收到'.encode('utf-8')))：调用新连接的socket对象（conn）的sendall()方法，向客户端发送数据。这里将接收到的数据和字符串"，已收到"（已转换为字节串）拼接起来发送。